МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра САПР
Звіт
до лабораторної роботи №3
на тему: “Створення компонентів-списків у середовищі візуального програмування Delphi.”
з курсу
“Застосування засобів об’єктно-орієнтованого програмування в лінгвістичних задачах”
Мета: Навчитися використовувати компоненти-списки TListBox і TcomboBox, GroupBox, RadioButton, StringGrid, CheckBox.
Теоретичні відомості
Компонент TListBox призначений для відображення списку рядків на екрані - список ListBox.Цей компонент має у своєму складі об'єкт-список, що є екземпляром класу TStrings і містить набір рядків з асоційованими з ними довільними об'єктами. Якщо говорити точніше, використовується не сам абстрактний клас TStrings, а його однойменні нащадки з перевизначеними методами.Таким чином, компонент ListBox, що є екземпляром класу TListBox, дозволяє відображати на екрані список рядків, кожен з яких може бути зв'язаний, наприклад, з деяким малюнком. Безпосереднім предком класу TListBox є клас TCustomListBox, що породжений від класу TWinControl. Отже, компонент ListBox є віконним керуючим елементом. Основні характеристики списку ListBox закладені в класі TCustomListBox. Головними з них є наявність списку рядків класу TStrings, засобів відображення списку і можливість маніпулювання його елементами.
TcustomListBox визначає індекс виділеного елемента в списку. Нумерація елементів починається з нуля. Якщо виділеного елемента немає, ця властивість приймає значення, рівне -1. Якщо в списку може бути виділено кілька елементів, вказується індекс активного виділеного елемента. Властивість доступна тільки на етапі виконання програми.
Комбінований рядок введення ComboBox є екземпляром класу TCustomBox і поєднує в собі можливості рядка введення Edit і списку ListBox. По зовнішньому вигляду компонентів Combo Box нагадує звичайний рядок уведення Edit, але додатково має в правій частині кнопку зі стрілкою, спрямованої вниз.Якщо клацнути мишею по цій кнопці, з'явиться список, що випадає, подібний до списку компонента List Box. Наявність рядка введення в компонент Combo Box розширює його можливості в порівнянні зі звичайним списком List Box. Наприклад, використовуючи рядок уведення, можна вводити в список нові елементи, здійснювати пошук потрібного елемента в списку, відображати активний елемент списку.
Основні характеристики комбінованого рядка введення закладені в класі TCustomComboBox, що є безпосереднім предком класу TCustomBox. Предком класу TCustomComboBox є безпосередньо базовий клас усіх віконних елементів керування TWinControl.
Основні операції для обробки списку в компоненті ComboBox - додавання, видалення, пошук, сортування елементів - здійснюється так само, як і в списку ListBox.
Порядок виконання роботи
Частина 1. Використання компонента TListBox
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
var
a:array[1..10] of integer;
i,min,max,imin,imax:integer;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
ListBox1: TListBox;
ListBox2: TListBox;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=0;
ListBox1.Clear;
ListBox2.Clear;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Add(Edit1.Text);
i:=i+1;
a[i]:=StrToInt(Edit1.Text);
Edit1.SetFocus;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
max:=a[1];
imax:=1;
min:=a[1];
imin:=1;
for i:=2 to 10 do
begin
if max<a[i] then
begin max:=a[i]; imax:=i end;
if min>a[i] then
begin min:=a[i]; imin:=i end;
end;
a[imax]:=min;
a[imi...